import matplotlib.pyplot as plt
from sklearn.datasets import make_blobs
from sklearn import svm

plt.figure(figsize=(8,4))
def plot_line(slope, intercept, X):
    min_x = int(min(X[:,0]))
    max_x = int(max(X[:,0]))
    x = range(min_x,max_x)
    y = -(x*slope[0] + intercept)/slope[1]   
    plt.plot(x,y, color='black')
    return

CENTERS = 2
X,y = make_blobs(n_samples=200,n_features=2,centers=CENTERS,
      random_state=11, cluster_std=2)

clf = svm.SVC(kernel='linear')
clf.fit(X, y) 
print(clf.coef_)
print(clf.intercept_)

plt.scatter(clf.support_vectors_[:,0], clf.support_vectors_[:,1],
            marker='o', edgecolor='r', color = 'y', s=140,
            label='support vector')
for target in range(CENTERS):
    plt.scatter(X[y==target,0], X[y==target,1], marker='^', 
                label='class '+format(target))
    
plot_line(clf.coef_[0],clf.intercept_,X)
plt.xlabel('Feature 1', fontsize=15)
plt.ylabel('Feature 2', fontsize=15)
plt.title('Hard SVM')
plt.legend()
plt.show()
